/**
 * @file main.cpp
 * @brief 图像修复系统应用程序入口文件
 *
 * 这是Qt应用程序的标准入口点，负责：
 * - 创建应用程序对象
 * - 初始化主窗口
 * - 启动事件循环
 */

#include "mainwindow.h"  // 包含主窗口类的头文件
#include <QApplication>  // 包含Qt应用程序类

/**
 * @brief 程序的主入口函数
 * @param argc 命令行参数个数
 * @param argv 命令行参数数组
 * @return 应用程序的退出代码
 *
 * 详细流程：
 * 1. QApplication对象管理整个应用程序的生命周期
 * 2. 创建并显示主窗口
 * 3. 进入事件循环，等待用户交互
 * 4. 当所有窗口关闭时，事件循环结束，程序退出
 */
int main(int argc, char *argv[])
{
    // 创建QApplication对象，管理整个应用程序
    // argc和argv用于处理命令行参数（如样式、字体等）
    QApplication a(argc, argv);

    // 创建主窗口对象 - 这是应用程序的主要界面
    MainWindow w;

    // 显示主窗口
    // 注意：此时窗口只是创建，真正显示要等到exec()开始事件循环
    w.show();

    // 进入主事件循环，等待用户操作
    // 这是一个阻塞调用，会持续运行直到程序退出
    // 当窗口关闭时，exec()返回，程序结束
    return a.exec();
}
